package org.example.demo3.demos.web.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义翻译注解
 * @author wangy
 */
// @Target和@Retention 的 是annatation(注解)的 对注解范围和 注解在运行时进行限定




@Target(ElementType.FIELD) // 注解范围限定
@Retention(RetentionPolicy.RUNTIME) // 注解在进行时
public @interface Translate {

    /**
     * 翻译类型
     * {@link TranslateConstant}
     */
    String type(); // 注解方法 type,没有默认值, 每次都需要写值.

    /**
     * 字典编码
     */
    String value() default ""; //定义了一个名为 value 的注解方法，它有一个默认值 ""（空字符串）。如果在使用 Translate 注解时没有明确指定 value，将使用这个默认值。

    /**
     * 返回put到json中的文本key
     */
    String translateText() default ""; // ：定义了一个名为 translateText 的注解方法，同样有一个默认值 ""。

    /**
     * 日期翻译格式
     */
    String format() default "yyyy-MM-dd"; // 定义了一个名为 format 的注解方法，它有一个默认值为日期格式 "yyyy-MM-dd"。如果不指定 format，则将使用这个日期格式。
}
